﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace SharedGenomics.Annotations
{
    /// <summary>
    /// The interface for all annotations.  Note that annotations may be persisted to cache in binary form, and hence *must* be serializable.
    /// </summary>
    public interface IAnnotation
    {
        AnnotationKey AnnotationKey { get; }
        /// <summary>
        /// A human-readable summary of what the annotation is about, suitable for using as a window title or menu text
        /// </summary>
        string Description { get; }

        /// <summary>
        /// The key that will be associated with the annotation when stored as part of an annotation session
        /// </summary>
        string EncodedKey { get; }
    }
}
